# openpyxl 库基本使用
import openpyxl

# 1、load_workbook只能打开已经存在的Excel，不能创建新的工作簿
workbook = openpyxl.load_workbook(filename='测试.xlsx')
print(workbook.sheetnames)

# 2.根据名称获取工作表
sheet1 = workbook.active  # 只有一个工作表可以使用这个
sheet = workbook['2021年5月23日']
sheet2 = workbook['2021年5月22日']
print(sheet2)
print(sheet1)

# 3.获取表格内容所在的范围
print(sheet1.dimensions)

# 4.获取某个单元格的具体内容
# 指定坐标 或是行列
cell = sheet['C3']
cell2 = sheet.cell(row=2, column=3)
print(cell.value, cell2.value)

# 5.获取某个单元格的行、列、坐标
print(cell.row, cell.column, cell.coordinate)

# 6.获取多个格子的值
# 6.1 指定坐标范围的值
cells = sheet['A1:B5']
# 6.2 指定列的值
cells = sheet['A:C']
# 6.3 指定行的值
cells = sheet[5:6]

# 三种方法依然有自己的局限性，如果我需要特定范围的值，且懒得换算成字母数字坐标。
# 例如我想要获取第2行至第5行、第1列至第3列的全部单元格。因此必须掌握第4种方法：
# 6.3 指定范围的值
for row in sheet.iter_rows(min_row=2, max_row=4, min_col=1, max_col=3):
    print(row)
    for cell in row:
        print(cell.value)

# 7.读取所有的行
for row in sheet.rows:
    print(row)
